package com.yeung.swordoffer;

import java.util.ArrayList;

/**
 * 题目描述
 * 在一个字符串(0<=字符串长度<=10000，全部由字母组成)中找到第一个只出现一次的字符,
 * 并返回它的位置, 如果没有则返回 -1（需要区分大小写）
 */
public class 第一个只出现一次的字符 {
    public int FirstNotRepeatingChar(String str) {
        int result = -1;
        if (str == null || str.equals("") || str.length() < 1) return result;
        char[] chars = str.toCharArray();
        ArrayList<Character> list = new ArrayList();
        for (char aChar : chars) {
            if (!list.contains(aChar)) list.add(aChar);
        }

        for (Character ch : list) {
            String sub = str.replaceAll("[^" + ch + "]", "");
            if (sub.length() < 2) {
                result = str.indexOf(ch);
                break;
            }
        }
        return result;
    }

}
